/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor. 
 */
package carro.entity;

import java.util.Objects;

/**
 *
 * @author Angelo
 */
public class Carro {

    private String cor;
    private String marca;
    private String modelo;
    private int ano;
    private double velocidade;
    private int potencia;
    private double velocidadeMaxima;
    private int numeroDeMarchas;
    private int marchaAtual;

    public Carro(String cor, String marca, String modelo, int ano, int potencia, int velocidadeMaxima, int numeroDeMarchas) {
        this.marca = marca;
        this.modelo = modelo;
        this.cor = cor;
        this.ano = ano;
        this.velocidade = 0;
        this.potencia = potencia;
        this.velocidadeMaxima = velocidadeMaxima;
        this.numeroDeMarchas = numeroDeMarchas;
    }

    public Carro(String marca, String modelo) {
        this.marca = marca;
        this.modelo = modelo;
    }

    public Carro() {
    }

    /**
     * @return the cor
     */
    public String getCor() {
        return cor;
    }

    /**
     * @param cor the cor to set
     */
    public void setCor(String cor) {
        this.cor = cor;
    }

    /**
     * @return the marca
     */
    public String getMarca() {
        return marca;
    }

    /**
     * @param marca the marca to set
     */
    public void setMarca(String marca) {
        this.marca = marca;
    }

    /**
     * @return the modelo
     */
    public String getModelo() {
        return modelo;
    }

    /**
     * @param modelo the modelo to set
     */
    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    /**
     * @return the ano
     */
    public int getAno() {
        return ano;
    }

    /**
     * @param ano the ano to set
     */
    public void setAno(int ano) {
        this.ano = ano;
    }

    /**
     * @return the velocidade
     */
    public double getVelocidade() {
        return Math.floor(velocidade);
    }

    /**
     * @param velocidade the velocidade to set
     */
    public void setVelocidade(double velocidade) {
        this.velocidade = velocidade;
    }

    /**
     * @return the potencia
     */
    public int getPotencia() {
        return potencia;
    }

    /**
     * @param potencia the potencia to set
     */
    public void setPotencia(int potencia) {
        this.potencia = potencia;
    }

    /**
     * @return the velocidadeMaxima
     */
    public double getVelocidadeMaxima() {
        return velocidadeMaxima;
    }

    /**
     * @param velocidadeMaxima the velocidadeMaxima to set
     */
    public void setVelocidadeMaxima(double velocidadeMaxima) {
        this.velocidadeMaxima = velocidadeMaxima;
    }

    /**
     * @return the numeroDeMarchas
     */
    public int getNumeroDeMarchas() {
        return numeroDeMarchas;
    }

    /**
     * @param numeroDeMarchas the numeroDeMarchas to set
     */
    public void setNumeroDeMarchas(int numeroDeMarchas) {
        this.numeroDeMarchas = numeroDeMarchas;
    }

    /**
     * @return the marchaAtual
     */
    public int getMarchaAtual() {
        return marchaAtual;
    }

    /**
     * @param marchaAtual the marchaAtual to set
     */
    public void setMarchaAtual(int marchaAtual) {
        this.marchaAtual = marchaAtual;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 53 * hash + Objects.hashCode(this.getMarca());
        hash = 53 * hash + Objects.hashCode(this.getModelo());
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Carro other = (Carro) obj;
        if (!Objects.equals(this.marca, other.marca)) {
            return false;
        }
        if (!Objects.equals(this.modelo, other.modelo)) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Carro{" + "cor=" + cor + ", marca=" + marca + ", modelo=" + modelo + ", ano=" + ano + ", velocidade=" + (int) velocidade + "KM/h, potencia=" + potencia + "cv, velocidadeMaxima=" + velocidadeMaxima + "KM/h, numeroDeMarchas=" + numeroDeMarchas + ", marchaAtual=" + marchaAtual + '}';
    }
}
